<?php

class Training_CaptchaController extends Zendvn_Controller_Action {

    //Mang tham so nhan duoc o moi action
    protected $_arrParam;
    //Duong dan cua controller
    protected $_currentController;
    //Duong dan cua Action chinh
    protected $_actionMain;
    //Thong so phan trang
    protected $_paginator = array(
        'ItemCountPerPage' => 5,
        'PageRange' => 3,
    );
    protected $_namespace;

    public function init() {
        //Mang tham so nhan duoc o moi action
        $this->_arrParam = $this->_request->getParams();

        //Duong dan cua controller
        $this->_currentController = '/' . $this->_arrParam['module']
                . '/' . $this->_arrParam['controller'];

        //Duong dan cua Action chinh
        $this->_actionMain = $this->_currentController . '/index';

        $this->_paginator['currentPage'] = $this->_request->getParam('page', 1);
        $this->_arrParam['paginator'] = $this->_paginator;

        //Luu cac du lieu filter vao SESSION
        //Dat ten SESSION
        $this->_namespace = $this->_arrParam['module'] . '-' . $this->_arrParam['controller'];
        $ssFilter = new Zend_Session_Namespace($this->_namespace);
//		$ssFilter->unsetAll();
        if (empty($ssFilter->col)) {
            $ssFilter->keywords = '';
            $ssFilter->col = 'g.id';
            $ssFilter->order = 'DESC';
        }

        $this->_arrParam['ssFilter']['keywords'] = $ssFilter->keywords;
        $this->_arrParam['ssFilter']['col'] = $ssFilter->col;
        $this->_arrParam['ssFilter']['order'] = $ssFilter->order;

        //Truyen ra view
        $this->view->arrParam = $this->_arrParam;
        $this->view->currentController = $this->_currentController;
        $this->view->actionMain = $this->_actionMain;

        $template_path = TEMPLATE_PATH . "/admin/system";
        $this->loadTemplate($template_path, 'template.ini', 'template');
    }
    
    public function indexAction() {
        
        //1. Khoi tao doi tuong Captcha
        $captcha = new Zend_Captcha_Image();
        
        //2. Thiết lập đường dẫn đến thư mục hình ảnh sẽ được tạo
        $captcha->setImgDir(CAPTCHA_PATH . '/img');
        
        //3. Thiết lập đường dãn URL đến thư mục chứa hình ảnh
        $captcha->setImgUrl(CAPTCHA_URL . '/img');
        
        //4. Thiết lập chiều dài chuỗi hiển thị trong hình
        $captcha->setWordlen(6);
        
        //5. Thiết lập đường dẫn đến FONT hiển thị trong CAPTCHA
        $captcha->setFont(CAPTCHA_PATH . '/font/vnarabia.ttf');
        
        //6. Thiết lập kích cỡ của FONT
        $captcha->setFontSize(30);
        
        //7. Thiết lập kích thước cho hình được tạo ra
        $captcha->setWidth(240);
        $captcha->setHeight(70);
        
        //8. Tao ra CAPTCHA
        $captcha->generate();
        
        //9. Truyền giá trị của CAPTCHA ra VIEW
        $this->view->captcha = $captcha->render($this->view);
        $this->view->captcha_id = $captcha->getId();
        $captchaSession = new Zend_Session_Namespace('Zend_Form_Captcha_' . $captcha->getId());
        $captchaSession->word = $captcha->getWord();
        
        if($this->_request->isPost()){
            $captchaID = $this->_arrParam["captchaID"];
            $captchaSession = new Zend_Session_Namespace('Zend_Form_Captcha_' . $captchaID);
            $file = CAPTCHA_PATH . '/img/' . $captchaID . $captcha->getSuffix();
            if($captchaSession->word == $this->_arrParam['captcha']){
                echo '<br>Đăng nhập thành công CAPTCHA';
            }else{
                echo '<br>Nhập lại CAPTCHA';
            }
            @unlink($file);
        }
    }
    
    public function index2Action() {
        $captcha = new Zendvn_Captcha_Image();
        
        //9. Truyền giá trị của CAPTCHA ra VIEW
        $this->view->captcha = $captcha->render($this->view);
        $this->view->captcha_id = $captcha->getId();
        
        if($this->_request->isPost()){
            
            $captchaID = $this->_arrParam["captchaID"];
            $valueCaptcha = $this->_arrParam['captcha'];
            $validator = new Zendvn_Validate_Captcha($captchaID);
            if(!$validator->isValid($valueCaptcha)){
                $errors = $validator->getMessages();
                echo '<br/>' . current($errors);
            }
            $captcha->removeImg($captchaID);
        }
    }
}
